@@ -58,6 +58,7 @@ INSTALLED_APPS = (  | 
            ||
| 58 | 58 | 
                'guideline',  | 
            
| 59 | 59 | 
                'integral',  | 
            
| 60 | 60 | 
                'logs',  | 
            
| 61 | 
                + 'maintenance',  | 
            |
| 61 | 62 | 
                'marketcode',  | 
            
| 62 | 63 | 
                'mch',  | 
            
| 63 | 64 | 
                'member',  | 
            
                @@ -0,0 +1,22 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +  | 
            |
| 3 | 
                +from django.contrib import admin  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from maintenance.models import MaintenacePointInfo, ExpressCompanyInfo, MaintenaceInfo  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class MaintenacePointInfoAdmin(admin.ModelAdmin):  | 
            |
| 9 | 
                +    list_display = ('name', 'province', 'location', 'postcode', 'status', 'created_at', 'updated_at')
               | 
            |
| 10 | 
                +  | 
            |
| 11 | 
                +  | 
            |
| 12 | 
                +class ExpressCompanyInfoAdmin(admin.ModelAdmin):  | 
            |
| 13 | 
                +    list_display = ('name', 'status', 'created_at', 'updated_at')
               | 
            |
| 14 | 
                +  | 
            |
| 15 | 
                +  | 
            |
| 16 | 
                +class MaintenaceInfoAdmin(admin.ModelAdmin):  | 
            |
| 17 | 
                +    list_display = ('name', 'phone', 'address', 'sn', 'desc', 'point_id', 'point_name', 'express_name', 'tracking_number', 'maintenace_status', 'status', 'created_at', 'updated_at')
               | 
            |
| 18 | 
                +  | 
            |
| 19 | 
                +  | 
            |
| 20 | 
                +admin.site.register(MaintenacePointInfo, MaintenacePointInfoAdmin)  | 
            |
| 21 | 
                +admin.site.register(ExpressCompanyInfo, ExpressCompanyInfoAdmin)  | 
            |
| 22 | 
                +admin.site.register(MaintenaceInfo, MaintenaceInfoAdmin)  | 
            
                @@ -0,0 +1,8 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +from __future__ import unicode_literals  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.apps import AppConfig  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +class MaintenanceConfig(AppConfig):  | 
            |
| 8 | 
                + name = 'maintenance'  | 
            
                @@ -0,0 +1,70 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 1.11.29 on 2021-09-15 05:12  | 
            |
| 3 | 
                +from __future__ import unicode_literals  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django.db import migrations, models  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class Migration(migrations.Migration):  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                + initial = True  | 
            |
| 11 | 
                +  | 
            |
| 12 | 
                + dependencies = [  | 
            |
| 13 | 
                + ]  | 
            |
| 14 | 
                +  | 
            |
| 15 | 
                + operations = [  | 
            |
| 16 | 
                + migrations.CreateModel(  | 
            |
| 17 | 
                + name='ExpressCompanyInfo',  | 
            |
| 18 | 
                + fields=[  | 
            |
| 19 | 
                +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
               | 
            |
| 20 | 
                +                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
               | 
            |
| 21 | 
                +                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
               | 
            |
| 22 | 
                +                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
               | 
            |
| 23 | 
                +                ('name', models.CharField(blank=True, help_text='\u540d\u79f0', max_length=255, null=True, verbose_name='name')),
               | 
            |
| 24 | 
                + ],  | 
            |
| 25 | 
                +            options={
               | 
            |
| 26 | 
                + 'verbose_name': '\u5feb\u9012\u516c\u53f8\u4fe1\u606f',  | 
            |
| 27 | 
                + 'verbose_name_plural': '\u5feb\u9012\u516c\u53f8\u4fe1\u606f',  | 
            |
| 28 | 
                + },  | 
            |
| 29 | 
                + ),  | 
            |
| 30 | 
                + migrations.CreateModel(  | 
            |
| 31 | 
                + name='MaintenaceInfo',  | 
            |
| 32 | 
                + fields=[  | 
            |
| 33 | 
                +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
               | 
            |
| 34 | 
                +                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
               | 
            |
| 35 | 
                +                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
               | 
            |
| 36 | 
                +                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
               | 
            |
| 37 | 
                +                ('name', models.CharField(blank=True, help_text='\u59d3\u540d', max_length=255, null=True, verbose_name='name')),
               | 
            |
| 38 | 
                +                ('phone', models.CharField(blank=True, help_text='\u7535\u8bdd', max_length=11, null=True, verbose_name='phone')),
               | 
            |
| 39 | 
                +                ('address', models.CharField(blank=True, help_text='\u5730\u5740', max_length=255, null=True, verbose_name='address')),
               | 
            |
| 40 | 
                +                ('sn', models.CharField(blank=True, db_index=True, help_text='\u5e8f\u5217\u53f7', max_length=32, null=True, verbose_name='sn')),
               | 
            |
| 41 | 
                +                ('desc', models.TextField(blank=True, help_text='\u6545\u969c\u63cf\u8ff0', null=True, verbose_name='desc')),
               | 
            |
| 42 | 
                +                ('point_id', models.CharField(blank=True, db_index=True, help_text='\u7ef4\u4fee\u70b9\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='point_id')),
               | 
            |
| 43 | 
                +                ('point_name', models.CharField(blank=True, help_text='\u7ef4\u4fee\u70b9\u540d\u79f0', max_length=255, null=True, verbose_name='point_name')),
               | 
            |
| 44 | 
                +                ('express_name', models.CharField(blank=True, help_text='\u5feb\u9012\u516c\u53f8\u540d\u79f0', max_length=255, null=True, verbose_name='express_name')),
               | 
            |
| 45 | 
                +                ('tracking_number', models.CharField(blank=True, help_text='\u5feb\u9012\u5355\u53f7', max_length=255, null=True, verbose_name='tracking_number')),
               | 
            |
| 46 | 
                +                ('maintenace_status', models.CharField(blank=True, help_text='\u7ef4\u4fee\u72b6\u6001', max_length=8, null=True, verbose_name='maintenace_status')),
               | 
            |
| 47 | 
                + ],  | 
            |
| 48 | 
                +            options={
               | 
            |
| 49 | 
                + 'verbose_name': '\u7ef4\u4fee\u4fe1\u606f',  | 
            |
| 50 | 
                + 'verbose_name_plural': '\u7ef4\u4fee\u4fe1\u606f',  | 
            |
| 51 | 
                + },  | 
            |
| 52 | 
                + ),  | 
            |
| 53 | 
                + migrations.CreateModel(  | 
            |
| 54 | 
                + name='MaintenacePointInfo',  | 
            |
| 55 | 
                + fields=[  | 
            |
| 56 | 
                +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
               | 
            |
| 57 | 
                +                ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
               | 
            |
| 58 | 
                +                ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
               | 
            |
| 59 | 
                +                ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
               | 
            |
| 60 | 
                +                ('name', models.CharField(blank=True, help_text='\u540d\u79f0', max_length=255, null=True, verbose_name='name')),
               | 
            |
| 61 | 
                +                ('province', models.CharField(blank=True, help_text='\u7701\u4efd', max_length=255, null=True, verbose_name='province')),
               | 
            |
| 62 | 
                +                ('location', models.CharField(blank=True, help_text='\u5730\u5740', max_length=255, null=True, verbose_name='location')),
               | 
            |
| 63 | 
                +                ('postcode', models.CharField(blank=True, help_text='\u90ae\u653f\u7f16\u7801', max_length=255, null=True, verbose_name='postcode')),
               | 
            |
| 64 | 
                + ],  | 
            |
| 65 | 
                +            options={
               | 
            |
| 66 | 
                + 'verbose_name': '\u7ef4\u4fee\u70b9\u4fe1\u606f',  | 
            |
| 67 | 
                + 'verbose_name_plural': '\u7ef4\u4fee\u70b9\u4fe1\u606f',  | 
            |
| 68 | 
                + },  | 
            |
| 69 | 
                + ),  | 
            |
| 70 | 
                + ]  | 
            
                @@ -0,0 +1,54 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +  | 
            |
| 3 | 
                +from django.db import models  | 
            |
| 4 | 
                +from django.utils.translation import ugettext_lazy as _  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class MaintenacePointInfo(BaseModelMixin):  | 
            |
| 9 | 
                + name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称')  | 
            |
| 10 | 
                + province = models.CharField(_(u'province'), max_length=255, blank=True, null=True, help_text=u'省份')  | 
            |
| 11 | 
                + location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'地址')  | 
            |
| 12 | 
                + postcode = models.CharField(_(u'postcode'), max_length=255, blank=True, null=True, help_text=u'邮政编码')  | 
            |
| 13 | 
                +  | 
            |
| 14 | 
                + class Meta:  | 
            |
| 15 | 
                + verbose_name = _(u'维修点信息')  | 
            |
| 16 | 
                + verbose_name_plural = _(u'维修点信息')  | 
            |
| 17 | 
                +  | 
            |
| 18 | 
                + def __unicode__(self):  | 
            |
| 19 | 
                + return '%d' % self.pk  | 
            |
| 20 | 
                +  | 
            |
| 21 | 
                +  | 
            |
| 22 | 
                +class ExpressCompanyInfo(BaseModelMixin):  | 
            |
| 23 | 
                + name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称')  | 
            |
| 24 | 
                +  | 
            |
| 25 | 
                + class Meta:  | 
            |
| 26 | 
                + verbose_name = _(u'快递公司信息')  | 
            |
| 27 | 
                + verbose_name_plural = _(u'快递公司信息')  | 
            |
| 28 | 
                +  | 
            |
| 29 | 
                + def __unicode__(self):  | 
            |
| 30 | 
                + return '%d' % self.pk  | 
            |
| 31 | 
                +  | 
            |
| 32 | 
                +  | 
            |
| 33 | 
                +class MaintenaceInfo(BaseModelMixin):  | 
            |
| 34 | 
                + name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名')  | 
            |
| 35 | 
                + phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'电话')  | 
            |
| 36 | 
                + address = models.CharField(_(u'address'), max_length=255, blank=True, null=True, help_text=u'地址')  | 
            |
| 37 | 
                +  | 
            |
| 38 | 
                + sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True)  | 
            |
| 39 | 
                + desc = models.TextField(_(u'desc'), blank=True, null=True, help_text=u'故障描述')  | 
            |
| 40 | 
                +  | 
            |
| 41 | 
                + point_id = models.CharField(_(u'point_id'), max_length=32, blank=True, null=True, help_text=u'维修点唯一标识', db_index=True)  | 
            |
| 42 | 
                + point_name = models.CharField(_(u'point_name'), max_length=255, blank=True, null=True, help_text=u'维修点名称')  | 
            |
| 43 | 
                +  | 
            |
| 44 | 
                + express_name = models.CharField(_(u'express_name'), max_length=255, blank=True, null=True, help_text=u'快递公司名称')  | 
            |
| 45 | 
                + tracking_number = models.CharField(_(u'tracking_number'), max_length=255, blank=True, null=True, help_text=u'快递单号')  | 
            |
| 46 | 
                +  | 
            |
| 47 | 
                + maintenace_status = models.CharField(_(u'maintenace_status'), max_length=8, blank=True, null=True, help_text=u'维修状态')  | 
            |
| 48 | 
                +  | 
            |
| 49 | 
                + class Meta:  | 
            |
| 50 | 
                + verbose_name = _(u'维修信息')  | 
            |
| 51 | 
                + verbose_name_plural = _(u'维修信息')  | 
            |
| 52 | 
                +  | 
            |
| 53 | 
                + def __unicode__(self):  | 
            |
| 54 | 
                + return '%d' % self.pk  | 
            
                @@ -0,0 +1,7 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +from __future__ import unicode_literals  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.test import TestCase  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +# Create your tests here.  | 
            
                @@ -0,0 +1,7 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +from __future__ import unicode_literals  | 
            |
| 3 | 
                +  | 
            |
| 4 | 
                +from django.shortcuts import render  | 
            |
| 5 | 
                +  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +# Create your views here.  |